FAQ
F.A.Q.
Domande - Risposte
Eliminare dei records contemporaneamente con ASP
Internet Provider
Software
Internet Provider
mail marketing
preventivi Internet
supporto tecnico
sms da web
download
corsi
lavoro
pagamenti
Internet Provider
 
FAQ
faq
news
Applicativi asp
Motomania

Eliminare dei records contemporaneamente con ASP

Avete presente quando si visiona una webmail? Vediamo un elenco con una casella di scelta quadrata per ogni riga, e abbiamo la possibilità di selezionare le righe che vogliamo ed eliminarle contemporaneamente, solo quelle che vogliamo! Come fare? Cerherò di spiegarvelo nel modo più corretto possibile.

Direi che possiamo iniziare, ambientandoci in una situazione reale, giusto per capire meglio.
Supponiamo di essere nel pannello di amministrazione del nostro guestbook, e abbiamo l’elenco delle firme lasciate, sarebbe bello se potessimo selezionare solo alcune di queste firme e cancellarle, invece di cancellarle una ad una.

Questo è possibile mettendo l’elenco dei records dentro un FORM, dare stesso nome alle caselle di scelta e dare come valore alle caselle l’ID della riga visualizzata. Avendo le caselle stesso nome, quando vengono passati per esempio con GET, otterremo

“pagina.asp?nomecasella=1&nomecasella=3&nomecasella=9”

e richiedendo la varibile “nomecasella” otterremo una stringa così

“1, 3, 9”

Bene, inizieremo adesso a scrivere il codice di una pagina, che simula un elenco di firme e che ci permetterà appunto di eliminarle.

Il codice nella pagina deve avere un certo ordine, percui sarete costretti a capire tutto solo alla fine, come il film Matrix.

Intanto controlliamo se abbiamo l’elenco dei records da eliminare, passato tramite GET, onde evitare errori dello script

<% if request.QueryString("record") <> "" then

Inizializziamo le variabili che ci serviranno e cominciamo ad entrare ne cuore dello script

i=0
k=1
cont=0

Misuriamo la lunghezza della stringa ottenuta, creiamo un ciclo che dura per tutta la lunghezza della stringa e contiamo quante virgole ci sono nella stringa! Contate le virgole, sappiamo con certezza che ci saranno sempre NUMEROVIRGOLE+1 di valori diversi.

lung=len(request.QueryString("record"))
while i < lung
car=mid(request.QueryString("record"),k,1)
if car = "," then
cont=cont+1
end if
i=i+1
k=k+1
wend
cicli=cont+1 'NUMEROVIRGOLE+1


Riutilizziamo la variabile i reimpostandola a 0 e utilizziamo il comando “split” che funziona come un array tagliando la nostra stringa ad ogni virgola che trova.

i=0
record=split(request.QueryString("record"),", ")

Utilizzando il valore di NUMEROVIRGOLE+1, creiamo finalmente il ciclo di eliminazione dei records. Una volta eliminati usiamo il response.redirect per aggiornare la pagina priva dei records eliminati.

while cicli > 0
set del = Server.CreateObject("ADODB.Command")
del.ActiveConnection = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("/mdb-database/guestbook.mdb")
del.CommandText = "DELETE FROM firme WHERE ID="&record(i)&""
del.CommandType = 1
del.CommandTimeout = 0
del.Prepared = true
del.Execute()
cicli=cicli-1
i=i+1
wend
response.redirect("questapagina.asp")


E concludiamo il controllo.

end if

Adesso creiamo il recordset (DI ESEMPIO) che tira fuori l’elenco delle firme

Dim Firme
Set Firme = Server.CreateObject("ADODB.Recordset")
Firme.ActiveConnection = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("/mdb-database/guestbook.mdb")
Firme.Source = "SELECT * FROM firme"
Firme.CursorType = 0
Firme.CursorLocation = 2
Firme.LockType = 1
Firme.Open()
%>


Di seguito scriviamo il Form ciclato per i risultati del recordset delle firme

Inizio modulo

<%
while NOT Firme.EOF
%>
<%=Firme("firma")%><input name="record" type="checkbox" id="record" value="<%=Firme("ID")%>">
<%
Firme.MoveNext()
wend
%>
<input type="submit" name="Submit" value="Cancella">


Fine modulo

Cosa manca ancora? NULLA! Abbiamo finito, spostiamoci alle conclusioni.

Avete capito tutto adesso?
Ad inizio pagina abbiamo messo lo script per eliminare i records per evitare di avere prima l’elenco delle firme e poi eliminarle, perché avremmo a video records già eliminati, incappando inevitabilemte in errori! Poi abbiamo creato il recordset di estrazione firme, che ci è servito per creare l’elenco delle firme.
L’elenco delle firme lo abbiamo messo dentro un Form che invia con il metodo GET i valori delle caselle a questa stessa pagina, che provvede ad eliminare!

 

Fonte: www.webmasterpoint.org


faq Indietro

 

Home | Chi Siamo | Contatti | Internet Provider | Software House | Active Web | Web Marketing | SMS | Realizzazioni | Preventivi | Supporto | Lavoro | Condizioni
RD Informatica - Str. Rupola 14 - 61122 Pesaro PU - Tel 0721 206238 Fax 0721 1835042 P.Iva 01241970415 - info@rdinformatica.com 
Estrattore Pagine Gialle
Applicativi asp
RD
Applicativi asp
Internet provider
Software House
Applicativi asp
SMS Web
Software SMS
Mailing Project